package logger

import (
	log "github.com/sirupsen/logrus"
	"gopkg.in/natefinch/lumberjack.v2"
	"io"
	"os"
	"sync"
)

var once sync.Once

func init() {
	once.Do(func() {
		logger := &lumberjack.Logger{
			// 日志输出文件路径
			Filename: "./log.log",
			// 日志文件最大 size, 单位是 MB
			MaxSize: 100, // megabytes
			// 最大过期日志保留的个数
			MaxBackups: 3,
			// 保留过期文件的最大时间间隔,单位是天
			MaxAge: 28, //days
			// 是否需要压缩滚动日志, 使用的 gzip 压缩
			Compress: true, // disabled by default
		}

		mw := io.MultiWriter(os.Stdout, logger)
		log.SetOutput(mw)

		log.SetReportCaller(true)

		log.SetLevel(log.TraceLevel)
	})
}
